package com.rboat.blog.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.rboat.common.core.domain.Ztree;
import com.rboat.common.utils.StringUtils;
import com.rboat.system.domain.SysDept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.rboat.blog.mapper.BlogArticleTypeMapper;
import com.rboat.blog.domain.BlogArticleType;
import com.rboat.blog.service.IBlogArticleTypeService;
import com.rboat.common.core.text.Convert;

/**
 * 文章类型Service业务层处理
 * 
 * @author rboat
 * @date 2019-11-05
 */
@Service
public class BlogArticleTypeServiceImpl implements IBlogArticleTypeService 
{
    @Autowired
    private BlogArticleTypeMapper blogArticleTypeMapper;

    /**
     * 查询文章类型
     * 
     * @param id 文章类型ID
     * @return 文章类型
     */
    @Override
    public BlogArticleType selectBlogArticleTypeById(String id)
    {
        return blogArticleTypeMapper.selectBlogArticleTypeById(id);
    }

    /**
     * 查询文章类型列表
     * 
     * @param blogArticleType 文章类型
     * @return 文章类型
     */
    @Override
    public List<BlogArticleType> selectBlogArticleTypeList(BlogArticleType blogArticleType)
    {
        return blogArticleTypeMapper.selectBlogArticleTypeList(blogArticleType);
    }

    /**
     * 新增文章类型
     * 
     * @param blogArticleType 文章类型
     * @return 结果
     */
    @Override
    public int insertBlogArticleType(BlogArticleType blogArticleType)
    {   blogArticleType.setId(StringUtils.getPrimaryKey());
        return blogArticleTypeMapper.insertBlogArticleType(blogArticleType);
    }

    /**
     * 修改文章类型
     * 
     * @param blogArticleType 文章类型
     * @return 结果
     */
    @Override
    public int updateBlogArticleType(BlogArticleType blogArticleType)
    {
        return blogArticleTypeMapper.updateBlogArticleType(blogArticleType);
    }

    /**
     * 删除文章类型对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteBlogArticleTypeByIds(String ids)
    {
        return blogArticleTypeMapper.deleteBlogArticleTypeByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除文章类型信息
     * 
     * @param id 文章类型ID
     * @return 结果
     */
    @Override
    public int deleteBlogArticleTypeById(String id)
    {
        return blogArticleTypeMapper.deleteBlogArticleTypeById(id);
    }

    @Override
    public List<BlogArticleType>selectTypeForArticleEdit(String articleType){
        List<BlogArticleType> types = this.selectBlogArticleTypeList(new BlogArticleType());
        for (int i = 0; i < types.size(); i++) {
            if(articleType.equals(types.get(i).getId())){
                types.get(i).setFlag(true);break;
            }

        }
        return types;
    }

    @Override
    public List<Map<String,Object>> selectTypeTree(Map<String,Object> param) {
        List<Map<String,Object>> ztree = blogArticleTypeMapper.selectTypeTree(param);
        return ztree;
    }

}
